home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-04-09 | 33.9 KB | 1,138 lines | [TEXT/MPS ] |
- ;
- ; File: QD3DMath.a
- ;
- ; Contains: Math & matrix routines and definitions.
- ;
- ; Version: Technology: Quickdraw 3D 1.5.4
- ; Release: QuickTime 3.0
- ;
- ; Copyright: © 1995-1998 by Apple Computer, Inc., all rights reserved.
- ;
- ; Bugs?: Please include the the file and version information (from above) with
- ; the problem description. Developers belonging to one of the Apple
- ; developer programs can submit bug reports to:
- ;
- ; devsupport@apple.com
- ;
- ;
- IF &TYPE('__QD3DMATH__') = 'UNDEFINED' THEN
- __QD3DMATH__ SET 1
-
- IF &TYPE('__QD3D__') = 'UNDEFINED' THEN
- include 'QD3D.a'
- ENDIF
-
- ; ******************************************************************************
- ; ** **
- ; ** Constant Definitions **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; * Real zero definition
- ;
-
- ;
- ; * Values of PI
- ;
-
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Miscellaneous Functions **
- ; ** **
- ; ****************************************************************************
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Point and Vector Creation **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3Point2D *Q3Point2D_Set(TQ3Point2D *point2D, float x, float y)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point2D_Set
- ENDIF
-
- ;
- ; extern TQ3Param2D *Q3Param2D_Set(TQ3Param2D *param2D, float u, float v)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Param2D_Set
- ENDIF
-
- ;
- ; extern TQ3Point3D *Q3Point3D_Set(TQ3Point3D *point3D, float x, float y, float z)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_Set
- ENDIF
-
- ;
- ; extern TQ3RationalPoint3D *Q3RationalPoint3D_Set(TQ3RationalPoint3D *point3D, float x, float y, float w)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3RationalPoint3D_Set
- ENDIF
-
- ;
- ; extern TQ3RationalPoint4D *Q3RationalPoint4D_Set(TQ3RationalPoint4D *point4D, float x, float y, float z, float w)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3RationalPoint4D_Set
- ENDIF
-
- ;
- ; extern TQ3Vector2D *Q3Vector2D_Set(TQ3Vector2D *vector2D, float x, float y)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector2D_Set
- ENDIF
-
- ;
- ; extern TQ3Vector3D *Q3Vector3D_Set(TQ3Vector3D *vector3D, float x, float y, float z)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector3D_Set
- ENDIF
-
- ;
- ; extern TQ3PolarPoint *Q3PolarPoint_Set(TQ3PolarPoint *polarPoint, float r, float theta)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3PolarPoint_Set
- ENDIF
-
- ;
- ; extern TQ3SphericalPoint *Q3SphericalPoint_Set(TQ3SphericalPoint *sphericalPoint, float rho, float theta, float phi)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3SphericalPoint_Set
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Point and Vector Dimension Conversion **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3Point3D *Q3Point2D_To3D(const TQ3Point2D *point2D, TQ3Point3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point2D_To3D
- ENDIF
-
- ;
- ; extern TQ3Point2D *Q3RationalPoint3D_To2D(const TQ3RationalPoint3D *point3D, TQ3Point2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3RationalPoint3D_To2D
- ENDIF
-
- ;
- ; extern TQ3RationalPoint4D *Q3Point3D_To4D(const TQ3Point3D *point3D, TQ3RationalPoint4D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_To4D
- ENDIF
-
- ;
- ; extern TQ3Point3D *Q3RationalPoint4D_To3D(const TQ3RationalPoint4D *point4D, TQ3Point3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3RationalPoint4D_To3D
- ENDIF
-
- ;
- ; extern TQ3Vector3D *Q3Vector2D_To3D(const TQ3Vector2D *vector2D, TQ3Vector3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector2D_To3D
- ENDIF
-
- ;
- ; extern TQ3Vector2D *Q3Vector3D_To2D(const TQ3Vector3D *vector3D, TQ3Vector2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector3D_To2D
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Point Subtraction **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3Vector2D *Q3Point2D_Subtract(const TQ3Point2D *p1, const TQ3Point2D *p2, TQ3Vector2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point2D_Subtract
- ENDIF
-
- ;
- ; extern TQ3Vector2D *Q3Param2D_Subtract(const TQ3Param2D *p1, const TQ3Param2D *p2, TQ3Vector2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Param2D_Subtract
- ENDIF
-
- ;
- ; extern TQ3Vector3D *Q3Point3D_Subtract(const TQ3Point3D *p1, const TQ3Point3D *p2, TQ3Vector3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_Subtract
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Point Distance **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern float Q3Point2D_Distance(const TQ3Point2D *p1, const TQ3Point2D *p2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point2D_Distance
- ENDIF
-
- ;
- ; extern float Q3Point2D_DistanceSquared(const TQ3Point2D *p1, const TQ3Point2D *p2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point2D_DistanceSquared
- ENDIF
-
-
- ;
- ; extern float Q3Param2D_Distance(const TQ3Param2D *p1, const TQ3Param2D *p2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Param2D_Distance
- ENDIF
-
- ;
- ; extern float Q3Param2D_DistanceSquared(const TQ3Param2D *p1, const TQ3Param2D *p2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Param2D_DistanceSquared
- ENDIF
-
-
- ;
- ; extern float Q3RationalPoint3D_Distance(const TQ3RationalPoint3D *p1, const TQ3RationalPoint3D *p2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3RationalPoint3D_Distance
- ENDIF
-
- ;
- ; extern float Q3RationalPoint3D_DistanceSquared(const TQ3RationalPoint3D *p1, const TQ3RationalPoint3D *p2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3RationalPoint3D_DistanceSquared
- ENDIF
-
-
- ;
- ; extern float Q3Point3D_Distance(const TQ3Point3D *p1, const TQ3Point3D *p2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_Distance
- ENDIF
-
- ;
- ; extern float Q3Point3D_DistanceSquared(const TQ3Point3D *p1, const TQ3Point3D *p2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_DistanceSquared
- ENDIF
-
-
- ;
- ; extern float Q3RationalPoint4D_Distance(const TQ3RationalPoint4D *p1, const TQ3RationalPoint4D *p2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3RationalPoint4D_Distance
- ENDIF
-
- ;
- ; extern float Q3RationalPoint4D_DistanceSquared(const TQ3RationalPoint4D *p1, const TQ3RationalPoint4D *p2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3RationalPoint4D_DistanceSquared
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Point Relative Ratio **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3Point2D *Q3Point2D_RRatio(const TQ3Point2D *p1, const TQ3Point2D *p2, float r1, float r2, TQ3Point2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point2D_RRatio
- ENDIF
-
- ;
- ; extern TQ3Param2D *Q3Param2D_RRatio(const TQ3Param2D *p1, const TQ3Param2D *p2, float r1, float r2, TQ3Param2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Param2D_RRatio
- ENDIF
-
- ;
- ; extern TQ3Point3D *Q3Point3D_RRatio(const TQ3Point3D *p1, const TQ3Point3D *p2, float r1, float r2, TQ3Point3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_RRatio
- ENDIF
-
- ;
- ; extern TQ3RationalPoint4D *Q3RationalPoint4D_RRatio(const TQ3RationalPoint4D *p1, const TQ3RationalPoint4D *p2, float r1, float r2, TQ3RationalPoint4D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3RationalPoint4D_RRatio
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Point / Vector Addition & Subtraction **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3Point2D *Q3Point2D_Vector2D_Add(const TQ3Point2D *point2D, const TQ3Vector2D *vector2D, TQ3Point2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point2D_Vector2D_Add
- ENDIF
-
- ;
- ; extern TQ3Param2D *Q3Param2D_Vector2D_Add(const TQ3Param2D *param2D, const TQ3Vector2D *vector2D, TQ3Param2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Param2D_Vector2D_Add
- ENDIF
-
- ;
- ; extern TQ3Point3D *Q3Point3D_Vector3D_Add(const TQ3Point3D *point3D, const TQ3Vector3D *vector3D, TQ3Point3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_Vector3D_Add
- ENDIF
-
- ;
- ; extern TQ3Point2D *Q3Point2D_Vector2D_Subtract(const TQ3Point2D *point2D, const TQ3Vector2D *vector2D, TQ3Point2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point2D_Vector2D_Subtract
- ENDIF
-
- ;
- ; extern TQ3Param2D *Q3Param2D_Vector2D_Subtract(const TQ3Param2D *param2D, const TQ3Vector2D *vector2D, TQ3Param2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Param2D_Vector2D_Subtract
- ENDIF
-
- ;
- ; extern TQ3Point3D *Q3Point3D_Vector3D_Subtract(const TQ3Point3D *point3D, const TQ3Vector3D *vector3D, TQ3Point3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_Vector3D_Subtract
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Vector Scale **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3Vector2D *Q3Vector2D_Scale(const TQ3Vector2D *vector2D, float scalar, TQ3Vector2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector2D_Scale
- ENDIF
-
- ;
- ; extern TQ3Vector3D *Q3Vector3D_Scale(const TQ3Vector3D *vector3D, float scalar, TQ3Vector3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector3D_Scale
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Vector Length **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern float Q3Vector2D_Length(const TQ3Vector2D *vector2D)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector2D_Length
- ENDIF
-
- ;
- ; extern float Q3Vector3D_Length(const TQ3Vector3D *vector3D)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector3D_Length
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Vector Normalize **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3Vector2D *Q3Vector2D_Normalize(const TQ3Vector2D *vector2D, TQ3Vector2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector2D_Normalize
- ENDIF
-
- ;
- ; extern TQ3Vector3D *Q3Vector3D_Normalize(const TQ3Vector3D *vector3D, TQ3Vector3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector3D_Normalize
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Vector/Vector Addition and Subtraction **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3Vector2D *Q3Vector2D_Add(const TQ3Vector2D *v1, const TQ3Vector2D *v2, TQ3Vector2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector2D_Add
- ENDIF
-
- ;
- ; extern TQ3Vector3D *Q3Vector3D_Add(const TQ3Vector3D *v1, const TQ3Vector3D *v2, TQ3Vector3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector3D_Add
- ENDIF
-
-
- ;
- ; extern TQ3Vector2D *Q3Vector2D_Subtract(const TQ3Vector2D *v1, const TQ3Vector2D *v2, TQ3Vector2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector2D_Subtract
- ENDIF
-
- ;
- ; extern TQ3Vector3D *Q3Vector3D_Subtract(const TQ3Vector3D *v1, const TQ3Vector3D *v2, TQ3Vector3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector3D_Subtract
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Cross Product **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern float Q3Vector2D_Cross(const TQ3Vector2D *v1, const TQ3Vector2D *v2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector2D_Cross
- ENDIF
-
- ;
- ; extern TQ3Vector3D *Q3Vector3D_Cross(const TQ3Vector3D *v1, const TQ3Vector3D *v2, TQ3Vector3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector3D_Cross
- ENDIF
-
- ;
- ; extern TQ3Vector3D *Q3Point3D_CrossProductTri(const TQ3Point3D *point1, const TQ3Point3D *point2, const TQ3Point3D *point3, TQ3Vector3D *crossVector)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_CrossProductTri
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Dot Product **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern float Q3Vector2D_Dot(const TQ3Vector2D *v1, const TQ3Vector2D *v2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector2D_Dot
- ENDIF
-
- ;
- ; extern float Q3Vector3D_Dot(const TQ3Vector3D *v1, const TQ3Vector3D *v2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector3D_Dot
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Point and Vector Transformation **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3Vector2D *Q3Vector2D_Transform(const TQ3Vector2D *vector2D, const TQ3Matrix3x3 *matrix3x3, TQ3Vector2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector2D_Transform
- ENDIF
-
- ;
- ; extern TQ3Vector3D *Q3Vector3D_Transform(const TQ3Vector3D *vector3D, const TQ3Matrix4x4 *matrix4x4, TQ3Vector3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector3D_Transform
- ENDIF
-
- ;
- ; extern TQ3Point2D *Q3Point2D_Transform(const TQ3Point2D *point2D, const TQ3Matrix3x3 *matrix3x3, TQ3Point2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point2D_Transform
- ENDIF
-
- ;
- ; extern TQ3Param2D *Q3Param2D_Transform(const TQ3Param2D *param2D, const TQ3Matrix3x3 *matrix3x3, TQ3Param2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Param2D_Transform
- ENDIF
-
- ;
- ; extern TQ3Point3D *Q3Point3D_Transform(const TQ3Point3D *point3D, const TQ3Matrix4x4 *matrix4x4, TQ3Point3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_Transform
- ENDIF
-
- ;
- ; extern TQ3RationalPoint4D *Q3RationalPoint4D_Transform(const TQ3RationalPoint4D *point4D, const TQ3Matrix4x4 *matrix4x4, TQ3RationalPoint4D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3RationalPoint4D_Transform
- ENDIF
-
- ;
- ; extern TQ3Status Q3Point3D_To3DTransformArray(const TQ3Point3D *inPoint3D, const TQ3Matrix4x4 *matrix, TQ3Point3D *outPoint3D, long numPoints, unsigned long inStructSize, unsigned long outStructSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_To3DTransformArray
- ENDIF
-
- ;
- ; extern TQ3Status Q3Point3D_To4DTransformArray(const TQ3Point3D *inPoint3D, const TQ3Matrix4x4 *matrix, TQ3RationalPoint4D *outPoint4D, long numPoints, unsigned long inStructSize, unsigned long outStructSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_To4DTransformArray
- ENDIF
-
- ;
- ; extern TQ3Status Q3RationalPoint4D_To4DTransformArray(const TQ3RationalPoint4D *inPoint4D, const TQ3Matrix4x4 *matrix, TQ3RationalPoint4D *outPoint4D, long numPoints, unsigned long inStructSize, unsigned long outStructSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3RationalPoint4D_To4DTransformArray
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Vector Negation **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3Vector2D *Q3Vector2D_Negate(const TQ3Vector2D *vector2D, TQ3Vector2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector2D_Negate
- ENDIF
-
- ;
- ; extern TQ3Vector3D *Q3Vector3D_Negate(const TQ3Vector3D *vector3D, TQ3Vector3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector3D_Negate
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Point conversion from cartesian to polar **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3PolarPoint *Q3Point2D_ToPolar(const TQ3Point2D *point2D, TQ3PolarPoint *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point2D_ToPolar
- ENDIF
-
- ;
- ; extern TQ3Point2D *Q3PolarPoint_ToPoint2D(const TQ3PolarPoint *polarPoint, TQ3Point2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3PolarPoint_ToPoint2D
- ENDIF
-
- ;
- ; extern TQ3SphericalPoint *Q3Point3D_ToSpherical(const TQ3Point3D *point3D, TQ3SphericalPoint *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_ToSpherical
- ENDIF
-
- ;
- ; extern TQ3Point3D *Q3SphericalPoint_ToPoint3D(const TQ3SphericalPoint *sphericalPoint, TQ3Point3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3SphericalPoint_ToPoint3D
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Point Affine Combinations **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3Point2D *Q3Point2D_AffineComb(const TQ3Point2D *points2D, const float *weights, unsigned long nPoints, TQ3Point2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point2D_AffineComb
- ENDIF
-
- ;
- ; extern TQ3Param2D *Q3Param2D_AffineComb(const TQ3Param2D *params2D, const float *weights, unsigned long nPoints, TQ3Param2D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Param2D_AffineComb
- ENDIF
-
- ;
- ; extern TQ3RationalPoint3D *Q3RationalPoint3D_AffineComb(const TQ3RationalPoint3D *points3D, const float *weights, unsigned long numPoints, TQ3RationalPoint3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3RationalPoint3D_AffineComb
- ENDIF
-
- ;
- ; extern TQ3Point3D *Q3Point3D_AffineComb(const TQ3Point3D *points3D, const float *weights, unsigned long numPoints, TQ3Point3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_AffineComb
- ENDIF
-
- ;
- ; extern TQ3RationalPoint4D *Q3RationalPoint4D_AffineComb(const TQ3RationalPoint4D *points4D, const float *weights, unsigned long numPoints, TQ3RationalPoint4D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3RationalPoint4D_AffineComb
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Matrix Functions **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3Matrix3x3 *Q3Matrix3x3_Copy(const TQ3Matrix3x3 *matrix3x3, TQ3Matrix3x3 *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix3x3_Copy
- ENDIF
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_Copy(const TQ3Matrix4x4 *matrix4x4, TQ3Matrix4x4 *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_Copy
- ENDIF
-
-
- ;
- ; extern TQ3Matrix3x3 *Q3Matrix3x3_SetIdentity(TQ3Matrix3x3 *matrix3x3)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix3x3_SetIdentity
- ENDIF
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_SetIdentity(TQ3Matrix4x4 *matrix4x4)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_SetIdentity
- ENDIF
-
-
- ;
- ; extern TQ3Matrix3x3 *Q3Matrix3x3_Transpose(const TQ3Matrix3x3 *matrix3x3, TQ3Matrix3x3 *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix3x3_Transpose
- ENDIF
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_Transpose(const TQ3Matrix4x4 *matrix4x4, TQ3Matrix4x4 *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_Transpose
- ENDIF
-
-
- ;
- ; extern TQ3Matrix3x3 *Q3Matrix3x3_Invert(const TQ3Matrix3x3 *matrix3x3, TQ3Matrix3x3 *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix3x3_Invert
- ENDIF
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_Invert(const TQ3Matrix4x4 *matrix4x4, TQ3Matrix4x4 *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_Invert
- ENDIF
-
-
- ;
- ; extern TQ3Matrix3x3 *Q3Matrix3x3_Adjoint(const TQ3Matrix3x3 *matrix3x3, TQ3Matrix3x3 *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix3x3_Adjoint
- ENDIF
-
-
- ;
- ; extern TQ3Matrix3x3 *Q3Matrix3x3_Multiply(const TQ3Matrix3x3 *matrixA, const TQ3Matrix3x3 *matrixB, TQ3Matrix3x3 *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix3x3_Multiply
- ENDIF
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_Multiply(const TQ3Matrix4x4 *matrixA, const TQ3Matrix4x4 *matrixB, TQ3Matrix4x4 *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_Multiply
- ENDIF
-
-
- ;
- ; extern TQ3Matrix3x3 *Q3Matrix3x3_SetTranslate(TQ3Matrix3x3 *matrix3x3, float xTrans, float yTrans)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix3x3_SetTranslate
- ENDIF
-
- ;
- ; extern TQ3Matrix3x3 *Q3Matrix3x3_SetScale(TQ3Matrix3x3 *matrix3x3, float xScale, float yScale)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix3x3_SetScale
- ENDIF
-
-
- ;
- ; extern TQ3Matrix3x3 *Q3Matrix3x3_SetRotateAboutPoint(TQ3Matrix3x3 *matrix3x3, const TQ3Point2D *origin, float angle)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix3x3_SetRotateAboutPoint
- ENDIF
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_SetTranslate(TQ3Matrix4x4 *matrix4x4, float xTrans, float yTrans, float zTrans)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_SetTranslate
- ENDIF
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_SetScale(TQ3Matrix4x4 *matrix4x4, float xScale, float yScale, float zScale)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_SetScale
- ENDIF
-
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_SetRotateAboutPoint(TQ3Matrix4x4 *matrix4x4, const TQ3Point3D *origin, float xAngle, float yAngle, float zAngle)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_SetRotateAboutPoint
- ENDIF
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_SetRotateAboutAxis(TQ3Matrix4x4 *matrix4x4, const TQ3Point3D *origin, const TQ3Vector3D *orientation, float angle)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_SetRotateAboutAxis
- ENDIF
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_SetRotate_X(TQ3Matrix4x4 *matrix4x4, float angle)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_SetRotate_X
- ENDIF
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_SetRotate_Y(TQ3Matrix4x4 *matrix4x4, float angle)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_SetRotate_Y
- ENDIF
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_SetRotate_Z(TQ3Matrix4x4 *matrix4x4, float angle)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_SetRotate_Z
- ENDIF
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_SetRotate_XYZ(TQ3Matrix4x4 *matrix4x4, float xAngle, float yAngle, float zAngle)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_SetRotate_XYZ
- ENDIF
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_SetRotateVectorToVector(TQ3Matrix4x4 *matrix4x4, const TQ3Vector3D *v1, const TQ3Vector3D *v2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_SetRotateVectorToVector
- ENDIF
-
- ;
- ; extern TQ3Matrix4x4 *Q3Matrix4x4_SetQuaternion(TQ3Matrix4x4 *matrix, const TQ3Quaternion *quaternion)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_SetQuaternion
- ENDIF
-
- ;
- ; extern float Q3Matrix3x3_Determinant(const TQ3Matrix3x3 *matrix3x3)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix3x3_Determinant
- ENDIF
-
- ;
- ; extern float Q3Matrix4x4_Determinant(const TQ3Matrix4x4 *matrix4x4)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Matrix4x4_Determinant
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Quaternion Routines **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_Set(TQ3Quaternion *quaternion, float w, float x, float y, float z)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_Set
- ENDIF
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_SetIdentity(TQ3Quaternion *quaternion)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_SetIdentity
- ENDIF
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_Copy(const TQ3Quaternion *quaternion, TQ3Quaternion *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_Copy
- ENDIF
-
- ;
- ; extern TQ3Boolean Q3Quaternion_IsIdentity(const TQ3Quaternion *quaternion)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_IsIdentity
- ENDIF
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_Invert(const TQ3Quaternion *quaternion, TQ3Quaternion *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_Invert
- ENDIF
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_Normalize(const TQ3Quaternion *quaternion, TQ3Quaternion *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_Normalize
- ENDIF
-
- ;
- ; extern float Q3Quaternion_Dot(const TQ3Quaternion *q1, const TQ3Quaternion *q2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_Dot
- ENDIF
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_Multiply(const TQ3Quaternion *q1, const TQ3Quaternion *q2, TQ3Quaternion *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_Multiply
- ENDIF
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_SetRotateAboutAxis(TQ3Quaternion *quaternion, const TQ3Vector3D *axis, float angle)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_SetRotateAboutAxis
- ENDIF
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_SetRotate_XYZ(TQ3Quaternion *quaternion, float xAngle, float yAngle, float zAngle)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_SetRotate_XYZ
- ENDIF
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_SetRotate_X(TQ3Quaternion *quaternion, float angle)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_SetRotate_X
- ENDIF
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_SetRotate_Y(TQ3Quaternion *quaternion, float angle)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_SetRotate_Y
- ENDIF
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_SetRotate_Z(TQ3Quaternion *quaternion, float angle)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_SetRotate_Z
- ENDIF
-
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_SetMatrix(TQ3Quaternion *quaternion, const TQ3Matrix4x4 *matrix)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_SetMatrix
- ENDIF
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_SetRotateVectorToVector(TQ3Quaternion *quaternion, const TQ3Vector3D *v1, const TQ3Vector3D *v2)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_SetRotateVectorToVector
- ENDIF
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_MatchReflection(const TQ3Quaternion *q1, const TQ3Quaternion *q2, TQ3Quaternion *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_MatchReflection
- ENDIF
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_InterpolateFast(const TQ3Quaternion *q1, const TQ3Quaternion *q2, float t, TQ3Quaternion *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_InterpolateFast
- ENDIF
-
- ;
- ; extern TQ3Quaternion *Q3Quaternion_InterpolateLinear(const TQ3Quaternion *q1, const TQ3Quaternion *q2, float t, TQ3Quaternion *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Quaternion_InterpolateLinear
- ENDIF
-
- ;
- ; extern TQ3Vector3D *Q3Vector3D_TransformQuaternion(const TQ3Vector3D *vector3D, const TQ3Quaternion *quaternion, TQ3Vector3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Vector3D_TransformQuaternion
- ENDIF
-
- ;
- ; extern TQ3Point3D *Q3Point3D_TransformQuaternion(const TQ3Point3D *point3D, const TQ3Quaternion *quaternion, TQ3Point3D *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3Point3D_TransformQuaternion
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Volume Routines **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3BoundingBox *Q3BoundingBox_Copy(const TQ3BoundingBox *src, TQ3BoundingBox *dest)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3BoundingBox_Copy
- ENDIF
-
- ;
- ; extern TQ3BoundingBox *Q3BoundingBox_Union(const TQ3BoundingBox *v1, const TQ3BoundingBox *v2, TQ3BoundingBox *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3BoundingBox_Union
- ENDIF
-
- ;
- ; extern TQ3BoundingBox *Q3BoundingBox_Set(TQ3BoundingBox *bBox, const TQ3Point3D *min, const TQ3Point3D *max, TQ3Boolean isEmpty)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3BoundingBox_Set
- ENDIF
-
- ;
- ; extern TQ3BoundingBox *Q3BoundingBox_UnionPoint3D(const TQ3BoundingBox *bBox, const TQ3Point3D *point3D, TQ3BoundingBox *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3BoundingBox_UnionPoint3D
- ENDIF
-
- ;
- ; extern TQ3BoundingBox *Q3BoundingBox_UnionRationalPoint4D(const TQ3BoundingBox *bBox, const TQ3RationalPoint4D *point4D, TQ3BoundingBox *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3BoundingBox_UnionRationalPoint4D
- ENDIF
-
- ;
- ; extern TQ3BoundingBox *Q3BoundingBox_SetFromPoints3D(TQ3BoundingBox *bBox, const TQ3Point3D *points3D, unsigned long numPoints, unsigned long structSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3BoundingBox_SetFromPoints3D
- ENDIF
-
- ;
- ; extern TQ3BoundingBox *Q3BoundingBox_SetFromRationalPoints4D(TQ3BoundingBox *bBox, const TQ3RationalPoint4D *points4D, unsigned long numPoints, unsigned long structSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3BoundingBox_SetFromRationalPoints4D
- ENDIF
-
-
- ; ******************************************************************************
- ; ** **
- ; ** Sphere Routines **
- ; ** **
- ; ****************************************************************************
-
- ;
- ; extern TQ3BoundingSphere *Q3BoundingSphere_Copy(const TQ3BoundingSphere *src, TQ3BoundingSphere *dest)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3BoundingSphere_Copy
- ENDIF
-
- ;
- ; extern TQ3BoundingSphere *Q3BoundingSphere_Union(const TQ3BoundingSphere *s1, const TQ3BoundingSphere *s2, TQ3BoundingSphere *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3BoundingSphere_Union
- ENDIF
-
- ;
- ; extern TQ3BoundingSphere *Q3BoundingSphere_Set(TQ3BoundingSphere *bSphere, const TQ3Point3D *origin, float radius, TQ3Boolean isEmpty)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3BoundingSphere_Set
- ENDIF
-
- ;
- ; extern TQ3BoundingSphere *Q3BoundingSphere_UnionPoint3D(const TQ3BoundingSphere *bSphere, const TQ3Point3D *point3D, TQ3BoundingSphere *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3BoundingSphere_UnionPoint3D
- ENDIF
-
- ;
- ; extern TQ3BoundingSphere *Q3BoundingSphere_UnionRationalPoint4D(const TQ3BoundingSphere *bSphere, const TQ3RationalPoint4D *point4D, TQ3BoundingSphere *result)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3BoundingSphere_UnionRationalPoint4D
- ENDIF
-
-
- ;
- ; extern TQ3BoundingSphere *Q3BoundingSphere_SetFromPoints3D(TQ3BoundingSphere *bSphere, const TQ3Point3D *points3D, unsigned long numPoints, unsigned long structSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3BoundingSphere_SetFromPoints3D
- ENDIF
-
- ;
- ; extern TQ3BoundingSphere *Q3BoundingSphere_SetFromRationalPoints4D(TQ3BoundingSphere *bSphere, const TQ3RationalPoint4D *points4D, unsigned long numPoints, unsigned long structSize)
- ;
- IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
- IMPORT_CFM_FUNCTION Q3BoundingSphere_SetFromRationalPoints4D
- ENDIF
-
-
-
-
- ENDIF ; __QD3DMATH__
-
-